#ifndef _CALC_H
#define _CALC_H

#include "Operator.h"
#include <string>    //Remove this
#include <vector>    //Remove this?

class Calc{
  public:
    ~Calc();
    static void clicked(short clicked);            //TODO:Put signal,slot keywords

  private:
    Calc();
    static void pushOperator(OpType ot, std::string value); 
    static void inputSignToogle();           //Change sign of the input number
    static void clear();
    static void insertNumber(short digit);
    static void putDot();                    //put . at the end
    static void applyOperation(OpType op);   //Apply one input operations: sqrt, 1/x, ^2, etc.
    static std::string eval();                    //Evaluate until last ( or end of stack.TODO: Change to QString

    static std::string m_input;              //TODO: Change this to QString
    static std::vector<Operator> m_stack;
    static unsigned int m_nParentesis;
};

#endif
